package com.huawei.cloud.phone.management.domain.phone;

import java.util.HashMap;
import java.util.Map;

// 0：等待创建中，1：创建中，2：运行中，3：重置中，4：重启中，5：冻结，7：正在关机，8：已关机，-5：重置失败，-6：重启失败，-7：手机异常，-8：创建失败，-9：关机失败
public enum PhoneStatus {
    WAITING(0),
    CREATING(1),
    RUNNING(2),
    RESETTING(3),
    RESTARTING(4),
    FREEZING(5),
    CLOSING(7),
    CLOSED(8),
    RESET_FAILED(-5),
    RESTART_FAILED(-6),
    ABNORMAL(-7),
    CREATE_FAILED(-8),
    CLOSE_FAILED(-9),
    UNKNOWN(-9999);

    private static final Map<Integer, PhoneStatus> MAPPER = new HashMap<>(PhoneStatus.values().length);

    static {
        for (PhoneStatus status : PhoneStatus.values()) {
            MAPPER.put(status.value, status);
        }
    }

    private final int value;

    PhoneStatus(int value) {
        this.value = value;
    }

    /**
     * 通过枚举值获取枚举对象
     *
     * @param value 枚举值
     * @return 枚举对象
     */
    public static PhoneStatus getStatus(int value) {
        return MAPPER.getOrDefault(value, UNKNOWN);
    }
}
